1. Technical Field
The present invention relates to an improved data processing system. In particular, the present invention relates to operations executed by an application. Still more particular, the present invention relates to extending operations of an application in a data processing system.
2. Description of Related Art
In most applications, an operation or unit of work may call other operations during its execution to perform additional functions. Example of operations include add, remove, and edit operations of resources. A group, such as a third party vendor, may find it difficult to contribute or extend a given operation to provide additional functionality, since the group does not own the operation that they would like to extend.
Currently, there are three main approaches used in contributing new operations. The first approach extends an operation by overriding a base operation in the runtime environment. However, this approach fails to allow a user control over the ordering in which extending operations run and it also limits the level of extension to only one level deep. In the case of overriding, this implies ambiguity when one or more extenders wish to add function that extends the same operation. Since only one extender can override, it is not possible to allow multiple extensions.
The second approach for contributing new operations involves business rule beans that allow a base operation to provide a trigger point, which may be used by an extender to contribute additional operations and extend base operations. The trigger point is defined within the code, with a specific identifier. Extenders then provide executable code that is associated with the identifier by placing the code within a specific directory location. While this approach provides extension points for extending operations, the base operation is responsible for defining its own trigger points, which means developers must anticipate in advance at what points third parties may wish to extend the operation. In many cases, however, it is impossible to know in advance all the ways in which someone else will want to extend an operation.
The third approach allows operations to be contributed for very specific actions, for example, Java™ Development Toolkit actions from Eclipse. Eclipse is an integrated development environment available from International Business Machines Corporation. Since these actions have knowledge and are well defined, the actions are able to be easily extended by other operations. However, the operations may only be applied after the specific actions and there is no control of the order in which the extending operations execute. Similar to the above approaches, the order of the actions is also one level deep and there is no way to execute an operation immediately prior to the specific action. Also, changes to the context of affected resources are not considered.
While the above approaches allow operations to be extended from a base operation, the level of extension is limited. In addition, there is no control of ordering in which the extending operations run. Moreover, pre and post operations are not commonly accepted by the base operation. Therefore, it would be advantageous to have a method for extending operations of an application, such that operations are automatically registered as extendable, pre and post operations may be defined, resources may be modified, ordering or priority of extending operations may be defined, the depth of extensions is not limited, and extended operation execution is dynamically determined based on function group enablement.